package org.linlinjava.litemall.wx.vo;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;

/**
 * 优惠券签证官
 *
 * @author yliyun
 * @date 2022/09/26
 */
@Data
public class CouponVo {
    /**
     * id
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;
    /**
     * 名字
     */
    private String name;
    /**
     * 照片url
     */
    private String pictureUrl;
    /**
     * desc
     */
    private String desc;
    /**
     * 标签
     */
    private String tag;
    /**
     * 最小值
     */
    private BigDecimal min;
    /**
     * 折扣
     */
    private BigDecimal discount;
    /**
     * 开始时间
     */
    private LocalDateTime startTime;
    /**
     * 结束时间
     */
    private LocalDateTime endTime;
    /**
     * 折扣类型
     */
    private Byte discountType;
    /**
     * 折现率
     */
    private Byte discountRate;
    /**
     * 类型
     */
    private Short type;
    /**
     * 用户级
     */
    private Integer[] userLevel;
    /**
     * 货物价值
     */
    private Integer[] goodsValue;
    /**
     * 商品类型
     */
    private Short goodsType;
    /**
     * 促销仅
     */
    private Boolean promotionOnly;
    /**
     * 范围
     */
    private Integer[] ranges;
    /**
     * 区域限制
     */
    private Short areaLimit;
    /**
     * 代码
     */
    private String code;
    /**
     * 优惠券用户id
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long couponUserId;
    /**
     * 使用指令
     */
    private String useInstruction;

    /**
     * 地区cn
     */
    private String regionsCn;
    /**
     * 地区在
     */
    private String regionsEn;
    /**
     * 会员价格
     */
    private BigDecimal memberPrice;
    /**
     * 税价格
     */
    private BigDecimal taxPrice;

    /**
     * 地区限制
     */
    private List regional_Restrictions;


    /**
     * 使用限制 | 年月日 限制 1234
     */
    private Short useLimit;

    /**
     * 限制数量,该字段和use_limit相关
     */
    private Integer useLimitNum;


    //税率代码(GST、PST、HST) 税收值 合计
    @ApiModelProperty(value = "GST 订单税费总金额")
    private BigDecimal GSTPrice;
    @ApiModelProperty(value = "PST 订单税费总金额")
    private BigDecimal HSTPrice;
    @ApiModelProperty(value = "HST 订单税费总金额")
    private BigDecimal PSTPrice;


    //拆分的限制

    /**
     * 限制地区如下
     */
    private List<String> limitRegionslist = new ArrayList<>();
    /**
     * 限制商品如下
     */
    private List<String> limitGoods = new ArrayList<>();
    /**
     * 限制分类如下
     */
    private List<String> limitCategories = new ArrayList<>();
    /**
     * 其他说明如下
     */
    private List<String> limitUseInstruction = new ArrayList<>();

}
